// 函数的不同调用方式决定了this 的指向不同
// 1 普通函数 this 之昂 window
function fn() {
  console.log('普通函数的this'+this);
}
window.fn();
fn();
// 2 对象的方法 this 指向的是对象 o
var o = {
  sayHi: function () {
    console.log('对象方法的this:' + this);

    }
}
o.sayHi();
// 3 构造函数 this 指向 ldh 这个实例对象 原型对象里面的 this 指向的也是 ldh 这个实例对象
function Star() {  };
Star.prototype.sing = function () {  }
var ldh = new Star();

// 4 绑定事件函数 this 指向的是函数的调用者 btn 这个按钮对象
// var btn = document.querySelector('button');
// btn.onclick = function () {
//   console.log('绑定事件函数的this:'+this);
//   };

// 5 定时器函数 无论哪里的定时器函数内 默认 this指向的是 window
window.setTimeout(function() {
  console.log('定时器的this:'+ this);
},1000);

// 6 立即执行函数 this 还是指向 window
(function () {
  console.log('立即执行函数的this'+this);
  })();

